package yunhe.biz;

import org.apache.ibatis.annotations.Param;
import yunhe.entity.*;

import java.util.List;

public interface StockMgrBiz
{
	/**
	 *
	 * 查询所有仓库
	 */
	List<Storage> querySto();
	/**
	 * 根据仓库id查询库存
	 * @param stoId
	 * @return
	 */
	List<Inventory> searchInvBySto(String stoId);

	/**
	 * 在盘点表中根据仓库id查询所有损益商品信息
	 * @return
	 */
	public  List<Taking> queryProLossPro(String stoId);
	/**
	 * 根据仓库名获取仓库信息
	 * @param stoName
	 * @return
	 */
	List<Storage> queryStoByName(String stoName);

	/**
	 * 根据仓库id和商品条形码查询商品盘点信息
	 */
	public  List<Taking> queryProLossByStoAndPro(String stoId,String takId,String proBarCode);

	/**
	 * 报损报溢，插入损益表
	 */
	public int  insertToProLoss(Object[] params);

	/**
	 * 查询所有的采购信息
	 * @return
	 */
	List<Purchase> quryAllPurchaseMsg();
	/**
	 * 插入盘点从表信息
	 * @param params
	 * @return
	 */

	int insertIntoTaking(@Param("param") Object[] params);


	/**
	 * 出库
	 * @param sk
	 * @param lsoa
	 * @return
	 */
	int stockOut(StockOut sk,List<StockOutAppend> lsoa);
/**
 * 写入入库单
 * @param si
 * @param list
 * @return
 */

	int stockIn(StockIn si,List<StockInAppend> list);
	/**
	 *
	 * 根据商品查库存
	 * @param proBarCode
	 * @return
	 */
	public List<Inventory> searchInvByPro(String proBarCode);




	  /**
     *
     * 根据盘点单号以及仓库id查询盘点信息
     * @param takId
     * @param stoid
     * @return
     */
    List<Taking> queryProByStoTakId( String takId,String stoid);

    /**
     *
     * 查询时间最近的盘点单
     * @return
     */

    List<Taking> queryLatestTimeTak();


	/**
	 * 查询默认仓库库存信息
	 * @return
	 */
	List<Inventory> searchInv();
	/**
	 * 写入转库记录表
	 *
	 * @param it
	 * @return
	 */
	int transInv(StockTransfer it);


	/**
	 * 设置库存上下限
	 * @param sto
	 * @param proBarCode
	 * @param topNum
	 * @param buttNum
	 * @return
	 */
	int setInvLimit(String sto,String proBarCode,String topNum,String buttNum);


	   /**
     * 查询所有的入库信息
     * @return
     */

	Object[] queryAllStockInAppend();
    /**
     * 查询所有的出库单信息
     * @return
     */
	 Object[]  queryAllStockOutAppend();

	    /**
	     * 根据时间查询入库信息
	     * @param date1
	     * @param date2
	     * @return
	     */
	 Object[] queryStockInBydate(String date1,String date2,String xuanze);

	    /**
	     * 根据时间查询出库信息
	     * @param date1
	     * @param date2
	     * @return
	     */
	 Object[] queryStockOutBydate(String date1,String date2,String xuanze);
}
